/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package raccoon.suvisa.logica.servicios.manejador.entidades.su;

import java.math.BigDecimal;
import java.math.BigInteger;
import javax.ejb.Remote;
import java.util.Date;
import raccoon.suvisa.datos.entities.Usuario;

/**
 *
 * @author Gabriel
 */
@Remote
public interface SuVisaRemote {

    public BigDecimal registrarUsuario(String nombre,
            String apellido, String email, String username, String password,
            String tipoIdentificacion, BigInteger numeroIdentificacion,
            String direccion, String telefono, BigInteger idEntidad, String rol);

    public BigDecimal registrarNuevaTarjeta(BigDecimal numeroTarjeta,
            String idTipoTarjeta, BigDecimal idCuenta,
            char activa, Double saldo, String paisexpedicion,
            Date fechaVencimiento, BigDecimal idEntidad);

    public boolean validarZonaTarjeta(BigDecimal idTarjeta, String zonaTransaccion);

    public boolean fondosSuficientes(BigDecimal idTarjeta, float montoTransaccion);

    public Double consultarCupoTarjeta(BigDecimal idTarjeta);

    public boolean modificarCupoTarjeta(BigDecimal idTipotarjeta,
            Double nuevoMax, Double nuevoMin);

    public boolean desactivarTipoTarjeta(BigDecimal idTipotarjeta);

    public BigDecimal crearTipoTarjeta(String nombreTipotarjeta, double cupomax, double cupomin);

    /*1. Los actores están en la capacidad de verificar sus movimientos al solicitar
    informes a la central de suVISA. Estos informes pueden ser tipo resumen o
    detallado por movimientos. (Gerente genera, empleado, administrador)*/
    //public void generarInformes();

    public BigDecimal registrarNuevaEntidad(BigInteger nit,
            String nombreEntidad, char activo, char cajero, char sucursal,
            char entidadcomercial, char entidadServPublicos, char banco,
            char cajaCompensacion, char financiamientoComercial);

    public boolean desactivarEntidad(BigDecimal idEntidad);

    public boolean aprobarRegistroEntidad(BigDecimal idEntidad);

    public boolean activarTarjeta(BigDecimal idTarjeta);

    public boolean registrarTarjetaHabiente(String numeroidentificacion,
          String nombre, String apellido, String telefono, String direccion,
          Double cupoaprobado, Double ingresosmensuales, String email,
          BigDecimal idEntidad);
    
    public void mandarMailActivacion(Usuario u);

    public boolean bloquearTarjetaHabiente(String numeroidentificacion);
}
